/**
 * 清单
 */
class payList extends eui.Component{
    private return:eui.Button;
    private list:eui.List;
    private payBtn:eui.Button;
    private payPrice:eui.Label;

    private _trData:Array<any> = [];
    private _arrayData:eui.ArrayCollection;
    public constructor(arr){
        super();
        this.addEventListener(eui.UIEvent.COMPLETE , this.createCompleteEvent,this);
        this.skinName = "payListSkin"; 
        this.valueList(arr);
    }

    private createCompleteEvent():void{
        this.removeEventListener(eui.UIEvent.COMPLETE , this.createCompleteEvent, this);
        this.inIt();
    }
    private inIt(){
        this.return.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{
            this.parent.removeChild(this);
        },this);

        Dispatcher.ins.addEventListener("createOrder",this.close,this);

        this.payBtn.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{
            let orderList:any = [];
            for(let i = 0,lg = this._trData.length;i < lg;i++){
                let obj = this._trData[i];
                let trObj:any = {};
                trObj.propId = obj.Id;
                trObj.propName = obj.PropName;
                trObj.propNum = obj.num.substr(1);
                trObj.price = obj.Price.substr(1);
                trObj.parPrice = obj.ParPrice.substr(1);
                trObj.sType = obj.SType;
                orderList.push(trObj);
            }
            let dataPost = {
                "userId":common.userInfo.userId,
                "areaId":common.areaId,
                "gameId":common.gameId,
                "chnltype":common.chnltype,
                "numId":common.userInfo.numId,
                "orderList":orderList,
                "version":common.version
            }
            http.getHttpServer("createOrder",dataPost,"shop");
        },this);
    }
    private close(evt:GameEvent):void{
        let obj = evt.data;
        if(obj.note == "shop"){
            this.wxPay(obj.data);
        }
    }
    public valueList(arr):void{
        this._trData = arr;
        this._arrayData =  new eui.ArrayCollection(this._trData);
        this.list.dataProvider = this._arrayData;
        this.list.itemRenderer = payListIR;
        let sum = 0;
        for(let i = 0;i < arr.length;i ++){
            let obj = arr[i];
            let price = obj.Price.substr(1);
            let num = obj.num.substr(1);
            sum = sum + price * num;
        }
        this.payPrice.text = "￥" + sum;
    }
    private wxPay(data):void{
        // alert('wxPay');
        if(wx) {
            // alert("wx");
            wx.chooseWXPay({
                timestamp: data.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
                nonceStr: data.nonceStr, // 支付签名随机串，不长于 32 位
                package: data.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
                signType: data.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
                paySign: data.sign, // 支付签名
                success: function (res) {
                    // 支付成功后的回调函数
                    // alert('success');
                    // alert(JSON.stringify(res.errMsg));
                    if(res.errMsg == "chooseWXPay:ok"){
                        Dispatcher.ins.dispatchEvent(new GameEvent("paySuccess"));   
                    }
                }
            });
            // wx.config({
            //     debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
            //     appId: data.appId, // 必填，公众号的唯一标识
            //     timestamp: data.timeStamp, // 必填，生成签名的时间戳
            //     nonceStr: data.nonceStr, // 必填，生成签名的随机串
            //     signature: data.sign,// 必填，签名
            //     jsApiList: ["chooseWXPay"] // 必填，需要使用的JS接口列表
            // });
            // wx.ready(function() {
            //     wx.chooseWXPay({
            //         timestamp: data.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
            //         nonceStr: data.nonceStr, // 支付签名随机串，不长于 32 位
            //         package: data.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
            //         signType: data.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
            //         paySign: data.sign, // 支付签名
            //         success: function (res) {
            //             // 支付成功后的回调函数
            //             if(res.errMsg == "chooseWXPay:ok"){
            //                 Dispatcher.ins.dispatchEvent(new GameEvent("paySuccess"));   
            //             }
            //         }
            //     });
            // });
            // wx.error(function(res){
            //     // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
            // });
        }
    }
}
class payListIR extends eui.ItemRenderer{
    public constructor(){
        super();
        this.addEventListener(eui.UIEvent.COMPLETE , this.createCompleteEvent,this);
        this.skinName = "payListIRSkin";
    }
    private createCompleteEvent():void{
        super.createChildren();
        this.removeEventListener(eui.UIEvent.COMPLETE , this.createCompleteEvent, this);

    }
    protected dataChanged():void{
        
    }
}